perm filename OR.PRF[W81,JMC] blob sn#570537 filedate 1981-03-10 generic text, type T, neo UTF8
comment |circumscription of a disjunction|

DECLARE INDVAR x;
DECLARE INDCONST a b;
DECLARE PREDCONST isblock 1;
DECLARE PREDPAR P 1;

AXIOM whichblock:	isblock(a)∨isblock(b);;

*****CIRCUMSCRIBE newaxiom isblock P x IN whichblock;

Circumscription has produced the following new axiom:
newaxiom: ((P(a)∨P(b))∧∀x.(P(x)⊃isblock(x)))⊃∀x.(isblock(x)⊃P(x))

*****∧I newaxiom[P←λx.(x=a)];

1 ((a=a∨b=a)∧∀x.(x=a⊃isblock(x)))⊃∀x.(isblock(x)⊃x=a)  

*****∧I newaxiom[P←λx.(x=b)];

2 ((a=b∨b=b)∧∀x.(x=b⊃isblock(x)))⊃∀x.(isblock(x)⊃x=b)  

*****ASSUME isblock(a);

3 isblock(a)  (3)

*****TAUTEQ x=a⊃isblock(x) 3;

4 x=a⊃isblock(x)  (3)

*****∀I ↑ x;

5 ∀x.(x=a⊃isblock(x))  (3)

*****TAUTEQ ∀x.(isblock(x)⊃x=a) 1,5;

6 ∀x.(isblock(x)⊃x=a)  (3)

*****∀E ↑ x;

7 isblock(x)⊃x=a  (3)

*****TAUTEQ isblock(x)≡x=a 3,7;

8 isblock(x)≡x=a  (3)

*****∀I ↑ x;

9 ∀x.(isblock(x)≡x=a)  (3)

*****ASSUME isblock(b);

10 isblock(b)  (10)

*****TAUTEQ x=b⊃isblock(x) 10;

11 x=b⊃isblock(x)  (10)

*****∀I ↑ x;

12 ∀x.(x=b⊃isblock(x))  (10)

*****TAUTEQ ∀x.(isblock(x)⊃x=b) 2,12;

13 ∀x.(isblock(x)⊃x=b)  (10)

*****∀E ↑ x;

14 isblock(x)⊃x=b  (10)

*****TAUTEQ isblock(x)≡x=b 10,14;

15 isblock(x)≡x=b  (10)

*****∀I ↑ x;

16 ∀x.(isblock(x)≡x=b)  (10)

*****⊃I 3⊃9;

17 isblock(a)⊃∀x.(isblock(x)≡x=a)  

*****⊃I 10⊃↑↑;

18 isblock(b)⊃∀x.(isblock(x)≡x=b)  

*****TAUT ∀x.(isblock(x)≡x=a)∨∀x.(isblock(x)≡x=b) whichblock,17:18;

19 ∀x.(isblock(x)≡x=a)∨∀x.(isblock(x)≡x=b)